package com.clstu.reflection;

import com.clstu.Car;

/**
 * 演示得到Class对象的几种方法
 */
public class GetClass_ {
    public static void main(String[] args) throws ClassNotFoundException {

        //1.Class.forName()方式
        Class<?> cls1 = Class.forName("com.clstu.Car");
        System.out.println(cls1);

        //2.类名.class方式
        Class<Car> cls2 = Car.class;
        System.out.println(cls2);

        //3.getClass()方式,(每个对象都知道自己对应的class对象
        Car car = new Car();
        Class<? extends Car> cls3 = car.getClass();
        System.out.println(cls3);

        //4.ClassLoader方式
        ClassLoader classLoader = car.getClass().getClassLoader();
        Class<?> cls4 = classLoader.loadClass("com.clstu.Car");//加载类
        System.out.println(cls4);

        //5.基本数据类型可以 .class方式得到
        System.out.println(int.class);
        System.out.println(boolean.class);
        System.out.println(double.class);

        //6.基本数据类型的包装类, .TYPE得到
        System.out.println(Integer.TYPE);
        System.out.println(Double.TYPE);

        //7.比较是否是同一class对象
        System.out.println(int.class == Integer.TYPE);//true


    }
}
